using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using Watchdog.Facade;

namespace Watchdog {
    [ServiceContract (SessionMode = SessionMode.Required, CallbackContract = typeof (IDispatchStatusHandler))]
    public interface IDispatcher {

        [OperationContract (IsOneWay = false, IsInitiating = true)]
        void Subscribe ();
        [OperationContract (IsOneWay = false, IsTerminating = true)]
        void Unsubscribe ();
        [OperationContract ()]
        void SetOnline ( TestUnit unit );
        [OperationContract ()]
        void SetOffline ( TestUnit unit );
    }
}